Proof-Checking, Theorem-Proving, and Program Verification
نویسنده
چکیده
This article consists of three parts: a tutorial introduction to a computer program that proves theorems by induction; a brief description of recent applications of that theorem-prover; and a discussion of several nontechnical aspects of the problem of building automatic theorem-provers. The theorem-prover described has proved theorems such as the uniqueness of prime factorizations, Fermat’s theorem, and the recursive unsolvability of the halting problem. The article is addressed to those who know nothing about automatic theorem-proving but would like a glimpse of one such system. This article definitely does not provide a balanced view of all automatic theorem1 proving, the literature of which is already rather large and technical. Good places to start on the technical literature are [Loveland 78] and [Bledsoe 77]. Nor do we describe the details of our theorem-proving system, but they can be found in the books, articles, and technical reports that we reference. In our opinion, progress in automatic theorem-proving is largely a function of the mathematical ability of those attempting to build such systems. We encourage good mathematicians to work in the field. The work reported here was supported in part by NSF Grant MCS-8202943 and ONR Contract N00014-81K-0634.
منابع مشابه
A short introduction to two approaches in formal verification of security protocols: model checking and theorem proving
In this paper, we shortly review two formal approaches in verification of security protocols; model checking and theorem proving. Model checking is based on studying the behavior of protocols via generating all different behaviors of a protocol and checking whether the desired goals are satisfied in all instances or not. We investigate Scyther operational semantics as n example of this...
متن کاملVerifying Haskell programs by combining testing, model checking and interactive theorem proving
We propose a program verification method that combines random testing, model checking and interactive theorem proving. Testing and model checking are used for debugging programs and specifications before a costly interactive proof attempt. During proof development, testing and model checking quickly eliminate false conjectures and generate counterexamples which help to correct them. With an int...
متن کاملLOPSTR 2003 Preproceedings of the International Symposium on Logic Based Program Synthesis and Transformation
In this paper we discuss the similarities between program specialisation and inductive theorem proving, and then show how program specialisation can be used to perform inductive theorem proving. We then study this relationship in more detail for the particular problem of verifying infinite state systems in order to establish a clear link between program specialisation and inductive theorem prov...
متن کاملApplication Specific Higher Order Logic Theorem Proving
Theorem proving allows the formal verification of the correctness of very large systems. In order to increase the acceptance of theorem proving systems during the design process, we implemented higher order logic proof systems for ANSI-C and Verilog within a framework for application specific proof systems. Furthermore, we implement the language of the PVS theorem prover as well-established hig...
متن کاملPractical Proof Checking for Program Certification
Program certification aims to provide explicit evidence that a program meets a specified level of safety. This evidence must be independently reproducible and verifiable. We have developed a system, based on theorem proving, that generates proofs that auto-generated aerospace code adheres to a number of safety policies. For certification purposes, these proofs need to be verified by a proof che...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1983